Data communication channels are used to transmit and receive information in an efficient and reliable manner. Such channels are utilized in a variety of applications from wireless communication networks, such as mobile cellular and satellite communication systems, to computer data storage devices, such as hard disk drives. When data is transmitted over a channel, unwanted phenomena such as inter-symbol interference (ISI), which is a form of distortion of a signal in which one symbol interferes with previous and/or subsequent symbols, may occur, thereby making the communication less reliable. To improve communication reliability, ISI needs to be undone or at least reduced.